import request from './request.js'
import requestConfig from '@/config/request_config.js'
import store from '@/store/index.js'

// 请求实例
const instance = request.create({
	baseURL: requestConfig['BASE_URL_DEV'],
	header: {
		'Content-Type': 'application/json'
	}
})


// 请求拦截
instance.interceptors.request.use(
	config => {
		// 在发送请求前做些什么
		const token = store.state.user.token
		config.header['token'] = token
		return config
	},
	error => {
		// 对请求错误做些什么
		return error
	}
)

// 响应拦截
instance.interceptors.response.use(
	response => {
		// 对响应数据做点什么
		logger(response)
		// 1.服务器的状态
		// 500 404 403 401 405
		// 2.业务逻辑的状态
		// 0 成功 1 失败 2 过期 。。。。
		const {url, method} = response.config
		store.commit('exception/SET_REQUEST_ERROR_CODE', {code: response.statusCode})
		store.commit('exception/SET_REQUEST_ERROR_INFO', {url, method})
		return Promise.resolve(response.data)
	},
	error => {
		console.log(error.statusCode)
		console.log(error.config)
		const {url, method} = error.config
		store.commit('exception/SET_REQUEST_ERROR_CODE', {code: error.statusCode})
		store.commit('exception/SET_REQUEST_ERROR_INFO', {url, method})
		return Promise.reject(error)
	}
)

function logger(res) {
	console.log('#####################################################################')
	console.log('请求地址: ', res.config.url)
	console.log('请求参数: ', res.config.data)
	console.log('请求参数: ', res.config.header)
	console.log('返回数据: ', res.data)
	console.log('#####################################################################')
}
export default instance
